Skip to content

Conversation

@justinmk3
Copy link
Contributor

No description provided.

scottwritescode and others added 30 commits December 2, 2024 15:29
## Problem
The codefileExtensions does not contain an extension type for `.pli`
which is the common extension for PL/1, or for `.bms` which is Basic
Mapping Support and common for screen definition files in IBM mainframe.
Because of this, the files and code in them are not accessible in the
workspace context for Amazon Q using the `/dev` quick action.

When using the Q quick action '\dev' for `.pli` or `.bms` files, Q
responds with the following message:
> This appears to be an empty program or workspace with no source files
present. There is nothing to explain at this time since no code or files
are available for analysis.

## Solution
- Add `.pli` and `.bms` as a known code file extension types.
## Problem
fix aws#6078 

## Solution
Turn off CodeWhisper scanning after test suite completes.
…aws#6114)

## Problem

We didn't have much use for the old "Amazon Q" channel in addition to
"Amazon Q Logs". All the logs we used were in "Amazon Q Logs".

## Solution

- Now, just have the useful "Amazon Q Logs" channel.
- Move the Amazon Q Language Server logs in to Amazon Q Logs to unify
all logs


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Signed-off-by: nkomonen-amazon <[email protected]>
## Problem
aws#6043
To reproduce, add a 5 second delay to the `after` hook at the top level.
One way to do this is to insert this at line 84. 
``` 
after(async function () {
        clock.uninstall()
        await sleep(5000)
    })
```
Despite asserting that the promise rejects within the test, the promise
rejects after the test as well. Not entirely sure why this happening.
- Tried manually wrapping in try-catch with an `await` instead of
`assert.rejects` and it still fails.
- Tried wrapping the promise in another promise before passing to
`assert.rejects`.

## Solution
What does appear to work, is manually handling the callback of the
promise. That is, explicitly defining a `then` and `catch` method to
assert the rejection, and awaiting the promise at the end of the test to
ensure it resolves before the test finishes. Not sure why this works,
but I am unable to reproduce the error with this change.

## Notes
- `assert.rejects` implementation:
https://github.com/nodejs/node/blob/3178a762d6a2b1a37b74f02266eea0f3d86603be/lib/assert.js#L653.
Doesn't appear to be the problem because the same is observed when
manually wrapping.
- `await` docs:
https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Operators/await




---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
The EC2 ARN sneaks its away into the logs via the `Ec2InstanceNode`
tooltip property from
`packages/core/src/awsService/ec2/explorer/ec2InstanceNode.ts`. When we
run any command on this instance, we get the following logs with the
middle section omitted for brevity.
``` 
2024-12-04 17:25:10.859 [debug] command: running "aws.ec2.openTerminal" with arguments: [
  {
    collapsibleState: 0,
    label: 'testInstance ({INSTANCE_ID}) RUNNING',
   ...
    contextValue: 'awsEc2RunningNode',
    iconPath: { id: 'pass', color: undefined },
    tooltip: 'testInstance\n' +
      '{INSTANCE_ID}\n' +
      'running\n' +
      'arn:aws:ec2:us-east-1:{ACCOUNT_ID}:instance/{INSTANCE_ID}',
    id: '{INSTANCE_ID}'
  },
  undefined
]
```
The actual AWS account ID in use is included in the logs. 

What makes this difficult is that this node is passed directly from
VSCode here:

https://github.com/aws/aws-toolkit-vscode/blob/d74f96c61f79716edf8a9a706a86c587887d3b9b/packages/core/src/awsService/ec2/activation.ts#L32-L37
and is processed by our commands wrapper here: 
https://github.com/aws/aws-toolkit-vscode/blob/d74f96c61f79716edf8a9a706a86c587887d3b9b/packages/core/src/shared/vscode/commands2.ts#L649-L660
The wrapper is logging the node directly from vscode, not giving us a
chance to use `partialClone` on it first.
## Solution
- omit all tooltips from the logs, since this is usually redundant
information anyway.
…6037)

## Problem
Follow up to
aws#6018 (comment)

## Solution
- Run `ssh` within the same env as it will be run on real connection. 
- Log any resulting errors, and inform user where the process failed. 
- Also part of this PR is moving some functions to `remoteSession.ts`
that are general enough to be there.

Error msg:
<img width="1518" alt="Screenshot 2024-11-15 at 5 53 51 PM"
src="https://github.com/user-attachments/assets/e8e56887-b792-43e3-9d94-73d0e5246766">


---

<!--- REMINDER: Ensure that your PR meets the guidelines in
CONTRIBUTING.md -->

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.

---------

Co-authored-by: Justin M. Keyes <[email protected]>
Problem:
Inconsistent comment style.

Solution:
Add a lint rule.
## Problem
We currently log `STREAM_URL` and `TOKEN` which are used to establish
the SSM session. However, these could be used to establish a connection
outside the toolkit.

## Solution
- Omit these from the logs. 
- Also add a logging statement to make it easier to find these
`connect_script` logs.

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
When a user clicks the "Change folder" button when creating or updating
a README, the "Generating answer..." loading text appears, even though
there is no answer being generated, since we are waiting for the user to
choose a folder.
This is an especially confusing UX if the user is connected to an SSH host.

## Solution
When the user clicks the "Change folder" button, send a "Choose a folder
to continue" message in the chat.
## Problem
Missing documentation about current behavior of ec2 remote window
connect.

## Solution
Add some detail to the docs. 

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
## Problem
We want to only log file paths when in debug mode, but the connect
script has no way of determining this.

## Solution
- pass log level to connect script. 
- use it to determine what to log. 

Example logs:
``` 
2024/12/05 15:50:24 ==============================================================================
2024/12/05 15:50:24 LOG_LEVEL=3
2024/12/05 15:50:24 AWS_REGION=us-east-1
2024/12/05 15:50:24 SESSION_ID=...
2024/12/05 15:51:11 ==============================================================================
2024/12/05 15:51:11 LOG_LEVEL=1
2024/12/05 15:51:11 AWS_REGION=us-east-1
2024/12/05 15:51:11 SESSION_ID=...
2024/12/05 15:51:11 AWS_SSM_CLI=.../Amazon/sessionmanagerplugin/bin/session-manager-plugin
2024/12/05 15:51:11 LOG_FILE_LOCATION=/.../ec2.{instanceId}.log
2024/12/05 15:51:55 ==============================================================================
2024/12/05 15:51:55 LOG_LEVEL=2
2024/12/05 15:51:55 AWS_REGION=us-east-1
2024/12/05 15:51:55 SESSION_ID=default-uk9cv4h86y5rdbrzarlkj9opci
2024/12/05 15:51:56 AWS_SSM_CLI=../Amazon/sessionmanagerplugin/bin/session-manager-plugin
2024/12/05 15:51:56 LOG_FILE_LOCATION=/.../ec2.{instanceId}.log
```

---

- Treat all work as PUBLIC. Private `feature/x` branches will not be
squash-merged at release time.
- Your code changes must meet the guidelines in
[CONTRIBUTING.md](https://github.com/aws/aws-toolkit-vscode/blob/master/CONTRIBUTING.md#guidelines).

License: I confirm that my contribution is made under the terms of the
Apache 2.0 license.
@justinmk3 justinmk3 requested review from a team as code owners December 7, 2024 00:07
@justinmk3 justinmk3 merged commit 292e35e into aws:master Dec 9, 2024
22 of 25 checks passed
@justinmk3 justinmk3 deleted the postreinvent branch December 9, 2024 21:46
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

8 participants